GNUPro Toolkit Documentation|Index|Next|Search
Using GNU CC

Copyright © 1988-1999 Free Software Foundation, Inc.
For EGCS-1.0
Permission is granted to make and distribute verbatim copies of this documentation
provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this documentation
under the conditions for verbatim copying, provided also that the “GNU General Public
License” is included exactly as in the original, and provided that the entire resulting
derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this documentation into
another language, under the above conditions for modified versions, except that the
sections entitled “GNU General Public License”and “Funding for Free Software”
and this permission notice, may be included in translations approved by the Free
Software Foundation instead of in the original English.
This documentation has been prepared by Cygnus Technical Publications;
to contact the Cygnus Solutions Technical Publications staff, email: `doc@cygnus.com`.
Copyright © 1991-1999 Cygnus®.
All rights reserved.
GNUPro®, the GNUPro logo, and the Cygnus logo are all trademarks of Cygnus.
All other brand and product names, trademarks and copyrights are the property of their
respective owners.
Permission is granted to make and distribute verbatim copies of this documentation,
provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this documentation
under the conditions for verbatim copying, provided also that the entire resulting
derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this documentation into
another language, under the above conditions for modified versions.
This documentation has been prepared by Cygnus Technical Publications; contact
the Cygnus Technical Publications staff: `doc@cygnus.com`.
While every precaution has been taken in the preparation of this documentation, the
publisher assumes no responsibility for errors or omissions, or for damages resulting
from the use of the information within the documentation.

The following documentation discusses the GNU compiler, gcc.

- GNU General Public License

- Preamble
- Terms and conditions for copying, distribution and modification
- How to apply these terms to your new programs

- Contributors to GNU CC
- Funding free software
- Protect your freedom; fight “Look and Feel”
- Compile C, C++, or Objective C
- Installing GNU CC

- Configurations supported by GNU CC
- Compilation in a separate directory
- Building and installing a cross-compiler

- Steps of cross-compilation
- Configuring a cross-compiler
- Tools and libraries for a cross-compiler
- `libgcc.a` and cross-compilers
- Cross-Compilers and Header Files
- Actually building the cross-compiler

- Installing GNU CC on the Sun
- Iinstalling GNU CC on VMS
- `collect2`
- Standard header file directories

- GNU CC command options

- Option summary

- Options controlling the kind of output
- Compiling C programs
- Options controlling C dialect
- Options that control C++ dialect
- Options to request or suppress warnings
- Options for debugging your program or GNU CC
- Options that control optimization
- Options controlling the preprocessor
- Passing options tothe assembler
- Options for linking
- Options for directory search
- Specifying target machine and compiler version
- Hardware models and configurations

- AMD29K options
- ARC options
- ARM options
- ARM Thumb options
- Clipper options
- Convex options
- DEC Alpha options
- Hitachi H8/300 options
- Hitachi SH options
- HPPA options
- IBM PowerPC options
- IBM RS/6000 options
- IBM RT options
- Intel `x`86 options
- Intel 960 options
- Matsushita MN10200 options
- Matsushita MN10300 options
- MIPS options
- Mitsubishi D10V options
- Mitsubishi M32R/D/X options
- Motorola 68K options
- Motorola 88K options
- NEC V850 options
- SPARC options
- System V options
- VAX options
- Zilog options

- Options for code generation conventions
- The offset-info option
- Environmental variables affecting GNU CC

- Running the protoize program

- Extensions to the C language family

- Statements and declarations in expressions
- Locally declared labels
- Labels as values
- Nested functions
- Constructing function calls
- Naming an expression’s type
- Referring to a type with `typeof`
- Generalized lvalues
- Conditionals with omitted operands
- Double-word integers
- Complex numbers
- Arrays of length zero
- Arrays of variable length
- Macros with variable number of arguments
- Non-Lvalue arrays may have subscripts
- Arithmetic on `void-` and `function-` pointers
- Non-constant initializers
- Constructor expressions
- Labeled elements in initializers

- Case ranges
- Cast to a union yype

- Declaring attributes of functions
- Prototypes and old-style function definitions
- Compiling functions for interrupt calls

- C++ style comments
- Dollar signs in identifier names
- The `ESC`character in constants

- Inquiring on alignment of types or variables

- Specifying attributes of variables
- Specifying attributes of types

- An `inline` function is as fast as a macro
- Assembler instructions with C expression operands
- Constraints for `asm` operands

- Simple constraints
- Multiple alternative constraints
- Constraint modifier characters
- Constraints for particular machines

- Controlling names used in assembler code
- Variables in specified registers

- Defining global register variables
- Specifying registers for local variables

- Alternate keywords
- Incomplete `enum`types
- Function namers as strings

- Getting the return or frame address of a function

- Extensions to the C++ language

- Named return values in C++
- Minimum and maximum operators in C++
- `goto` and destructors in GNU C++
- Declarations and definitions in one header
- Where's the template?
- Type abstraction using signatures

- `gcov`: a test coverage program

- Introduction to `gcov`
- Invoking `gcov`
- Using `gcov` with GCC optimization
- Brief description of `gcov` data files

- Known causes of trouble with GNU CC

- Actual bugs we haven’t fixed yet
- Installation problems
- Cross-compiler problems
- Interoperation
- Problems compiling certain programs
- Incomaptibilites of GNU CC
- Fixed header files
- Standard libraries
- Disappointments and misunderstandings
- Common misunderstanding with GNU C++

- Declare and define static members
- Temporaries may vanish before you expect

- Caveats of using protoize
- Certain changes we don't want to make
- Warning messages and error messages

- Reporting bugs

- Have you found a bug?
- Where to report bugs
- How to report bugs
- Sending patches for GNU CC

- How to get help with GNU CC
- Using GNU CC on VMS

- Include files and VMS
- Global declarations and VMS
- Other VMS issues

- Index

Top|Next